查看原文
其他

5 个开源 Python 库,让机器学习更简单

2017-04-05 Python开发者

(点击上方蓝字,快速关注我们)


来源:达尔文

my.oschina.net/editorial-story/blog/854878

如有好文章投稿,请点击 → 这里了解详情


机器学习令人兴奋,但实际操作却很困难也很复杂。它涉及到很多手动操作,如集合工作流和管道,设置数据源,以及在内部部署与云部署的资源之间切换等。


Python 是一款强大的工具语言,被广泛应用在大数据和机器学习之中。以下推荐了 5 个 Python 库,帮你疏通机器学习之路。


PyWren


PyWren 允许你将基于 Python 的科学计算工作负载作为多个 AWS Lambda 函数来运行。The New Stack 上一份对该项目的描述是,使用 AWS Lamba 作为强大的并行处理系统,处理可以切分为多个小任务的项目,从而不用占据大量的内存或存储空间。


此项目有个缺点是 lambda 函数运行不能超过 300 秒。但如果是一份只需几分钟就能完成的工作,并且要在数据集中运行上千次,那 PyWren 会是不错的选择,它能在一定程度上将用户硬件上无法运行的工作平行化至云端。


Tfdeploy



Google 的 TensorFlow 框架在发布了 1.0 版本之后进入辉煌时期,这时人们要问了:如何才能在不使用 TensorFlow 本身的情况下,使用在 TensorFlow 上训练的模型?


Tfdeploy 能给你答案。它将经过训练的 TensorFlow 模型导出为“简单的基于 NumPy 的可调用对象”,即该模型可以在 Python 中使用,并以 Tfdeploy 和 NumPy math-and-stats 库为唯一的依赖关系。大多数可以在 TensorFlow 中执行的操作也可以在 Tfdeploy 中执行,你可以通过标准的 Python metaphors 来扩展库的行为(如,重载类)。


Luigi



编写批量作业只是处理数据堆的一部分,你还需要将所有作业串起来生成类似工作流和管道的东西。


Luigi 由 Spotify 创建,用于“解决与长期运行成批处理作业有关的管道问题”。开发者可以通过 Luigi 采用多个不同且不相关的数据处理任务,如,Hive 查询,Java 中的 Hadoop 任务,Scala 中的 Spark 任务,从数据库转储 table 等,还可以创建一个端到端运行它们的工作流。


对任务的整个描述以及依存性被打造为 Python 模块,而不是作为 XML 配置文件或其他数据格式创建,因此可以集成到其他以 Python 为中心的项目中。


Kubelib


如果你使用 Kubernetes 作为机器学习作业的编排系统,那么你会祈祷 Kubernetes 产生的问题不要比解决的问题还多。Kubelib 为 Kubernetes 提供了一组 Pythonic 接口,最初是为了协助 Jenkins 脚本工作。但是它可以在没有 Jenkins 的情况下使用,它可以处理 kubectl CLI 或 Kubernetes API 暴露的一切服务。


PyTorch


PyTorch 是一个 Torch7 团队开源的 Python 优先的深度学习框架,提供两个高级功能:强大的 GPU 加速 Tensor 计算(类似 numpy),构建基于 tape 的自动升级系统上的深度神经网络。你可以重用你喜欢的 python 包,如 numpy、scipy 和 Cython ,在需要时扩展 PyTorch。


通常使用 PyTorch 是将其作为 numpy 的替代品,以使用强大的 GPU 能力,或作为一个深度学习研究平台,提供最大的灵活性和速度。


看完本文有收获?请转发分享给更多人

关注「大数据与机器学习文摘」,成为Top 1%

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存